Several storage systems provide data replication capabilities for the purpose of either logical error recovery or disaster tolerance, which requires respectively high availability and relatively high integrity. Storage systems allow block, object or file access and provide a means to replicate data from source data storage to a backup data storage system. The method and system for function-specific time-configurable replication of data applies to storage systems allowing object and file access only.
Object-based storage arrays allow applications to integrate a set of commands, typically called an Application Programming Interface (API). The API allows the creation of new objects as well as the modification of existing objects. For Storage arrays that are also providing Write-Once-Read-Many (WORM) functionality, it may not be possible to modify already stored objects.
File-oriented storage arrays provide users or applications the possibility of accessing the system using a file-share. These storage systems provide access to the installed capacity using standard file sharing protocols like NFS (meaning Network File System) or CIFS (meaning Common Internet File System). These protocols may also have proprietary extensions to implement special functionality like WORM file systems or WORM shares.
The storage array may also be a standard server running an operating system available from one of the many providers of operating systems. The server would provide access to the available capacity using file shares similar to a file-oriented storage array.
The set of command functions for object or file oriented storage arrays usually contains functions like write, read, delete, update, write-disable until expiration date or delete before expiration date. The exact implementation however is dependent on the storage array. Each individual function on a storage array is described in the array specific documentation. If the storage array provides special functions that are not standardized in the protocols like NFS and CIFS the array vendor provides a detailed description of the required integration with the storage array.
Existing object or file oriented storage arrays already provide ways to replicate data between two or more storage arrays. The replication may be implemented on the storage array or on a dedicated system that performs the replication of data.
Existing systems also allow replicating changes to the target system. The replication may include or exclude specific functions. If a function is replicated, it is generally replicated as soon as possible.
The changes made to objects or file systems are made by the users or applications making these changes. Users may typically access file oriented storage systems and perform the normal operations like writes, reads, updates or deletes of files. Applications may access both object and/or file oriented storage arrays. As applications are programmed, they may implement rules to make data read-only up to a certain expiration date. The capability to generate new versions of documents and other advanced functionality exist in various solutions available on the market. Among these advanced storage array functionalities in the prior art are applications which also use WORM functionality.
Data replication functionalities of current replication systems are based on fixed, pre-established and non-configurable delays. Consequently, deletion of data that is referred to by otherwise non-deleted files, objects or applications prevents recovery of such data.
U.S. Pat. No. 6,260,125 to McDowell, the content of which is incorporated herein by reference thereto, discloses an asynchronous disk mirroring system for use within a network computer system, wherein a write queue operates to delay the time of receipt of write requests to storage volumes, with a view to increasing data replication performance. The write queues include several write buffers, wherein the write requests pass through the write queue in a first-in, first-out (FIFO) sequence; and so transmission of write requests may be subject to a time-delay by either a pre-determined amount of time or when the storage or write buffer is full. McDowell also discloses a log file configured to receive the delayed write requests, for log-based mirror reconstruction and check-pointing of the mirrored volumes. The replication of data by the system of McDowell is limited to updating and writing and does not provide function-dependant data replication, nor does it provide configurable functions such as delete or write-disable.
Patent application number WO 99/507/747 to Arnon, the content of which is incorporated herein by reference thereto, discloses a method and apparatus for asynchronously updating, a mirror of data from a source device, whose purpose is to prevent the overwriting of data on a source storage that has not yet been committed to a target storage system. The Arnon method and apparatus addresses the need for data integrity but does not allow a user to configure replication operations on a function base or time base, and only prevents overwrite of data on a source storage in the situation where data has not been replicated on target storage.
Current solutions do not allow synchronizing or configuring the time frame within which a data restore is possible with replication of changes on object or file based storage arrays.
User-controlled data replication of the prior art allows users to control whether replication occurs, but not when it occurs. A system designed by Denehy et al. (Bridging the Information Gap in Storage Protocol Stacks, Denehy and al., Proceedings of the general track, 2002, USENIX annual technical conference, USENIX Association, Berkeley Calif., USA, the content of which is incorporated by reference thereto) allows a user to prioritize data replication actions on specific files based on file designations such as “non-replicated”, “immediately replicated” or “lazily replicated.” However, such configuration only addresses system performance needs for short lifetime data storage systems, and does not address the needs for system integrity and accident recovery.
Given the current interrelationship of data stored on networks, what is needed therefore is a way of ensuring that deleted data on devices that are not backed up may be recovered as long as a user wishes to preserve the ability to restore data including references to the deleted data of such devices from backups.
What is needed is a user-controlled data replication system that allows users to control both whether and when replication occurs.
What is needed is a system or method that allows synchronizing or configuring the time frame within which a data restore is possible and which enables replication of changes on object or file based storage arrays.
Further, what is needed is a system which more fully addresses the need for system integrity and accident recovery.